package utils

// 这个工具类看起来非常扯淡，但是确实很扯淡，完全不符合 Golang 设计理念
// 之所以设计这个工具类，是因为 sonar 扫描不允许过多的 if else， 真是SB, 被这个折磨的心态爆炸

func IfTrueHandler(condition bool, f func()) {
	if condition {
		f()
	}
}

func IfTrueHandlerWithErr(condition bool, f func() error) error {
	if condition {
		return f()
	}
	return nil
}

func IfFalseHandler(condition bool, f func()) {
	if !condition {
		f()
	}
}

func IfFalseHandlerWithErr(condition bool, f func() error) error {
	if !condition {
		return f()
	}
	return nil
}

func IfHandler(condition bool, trueHandler func(), falseHandler func()) {
	if condition {
		trueHandler()
	} else {
		falseHandler()
	}
}

func IfHandlerWithErr(condition bool, trueHandler func() error, falseHandler func() error) error {
	if condition {
		return trueHandler()
	}
	return falseHandler()
}

func HasErrorHandler(err error, handler func()) {
	if err != nil {
		handler()
	}
}

func NoErrorHandler(err error, handler func()) {
	if err == nil {
		handler()
	}
}
